package com.gc.business.service.impl;

import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.gc.common.support.Convert;
import com.gc.common.utils.DateUtils;
import com.gc.common.utils.IdUtils;
import com.gc.common.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.gc.business.mapper.VersionControlMapper;
import com.gc.business.domain.VersionControl;
import com.gc.business.service.IVersionControlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;

/**
 * 版本管理 服务层实现
 * 
 * @author hruiyan
 * @date 2020-12-24
 */
@Slf4j
@Service
public class VersionControlServiceImpl extends ServiceImpl<VersionControlMapper, VersionControl> implements IVersionControlService {

    @Override
    public List<VersionControl> list(VersionControl versionControl){
        LambdaQueryWrapper<VersionControl> wrapper = new LambdaQueryWrapper<>();
        if(versionControl != null){
            if(StringUtils.isNotEmpty(versionControl.getId())){
                wrapper.eq(VersionControl::getId, versionControl.getId());
            }
            if(StringUtils.isNotEmpty(versionControl.getVersionId())){
                wrapper.eq(VersionControl::getVersionId, versionControl.getVersionId());
            }
            if(StringUtils.isNotEmpty(versionControl.getUpdateTitle())){
                wrapper.eq(VersionControl::getUpdateTitle, versionControl.getUpdateTitle());
            }
            if(StringUtils.isNotEmpty(versionControl.getUpdateContent())){
                wrapper.eq(VersionControl::getUpdateContent, versionControl.getUpdateContent());
            }
            if(StringUtils.isNotEmpty(versionControl.getApkUrl())){
                wrapper.eq(VersionControl::getApkUrl, versionControl.getApkUrl());
            }
            if(StringUtils.isNotEmpty(versionControl.getCreateTime())){
                wrapper.eq(VersionControl::getCreateTime, versionControl.getCreateTime());
            }
            if(StringUtils.isNotEmpty(versionControl.getVersionNumber())){
                wrapper.eq(VersionControl::getVersionNumber, versionControl.getVersionNumber());
            }
        }
        return baseMapper.selectList(wrapper);
    }

    /**
     * 查询版本管理
     *
     * @param versionId 版本管理ID
     * @return 版本管理
     */
    @Override
    public VersionControl selectVersionControlById(Long versionId)
    {
        return baseMapper.selectVersionControlById(versionId);
    }

    /**
     * 查询版本管理列表
     *
     * @param versionControl 版本管理
     * @return 版本管理
     */
    @Override
    public List<VersionControl> selectVersionControlList(VersionControl versionControl)
    {
        return baseMapper.selectVersionControlList(versionControl);
    }

    /**
     * 新增版本管理
     *
     * @param versionControl 版本管理
     * @return 结果
     */
    @Override
    public int insertVersionControl(VersionControl versionControl)
    {
        versionControl.setCreateTime(DateUtils.getNowDate());
        versionControl.setVersionId(IdUtils.getPrimaryKey());
        return baseMapper.insertVersionControl(versionControl);
    }

    /**
     * 修改版本管理
     *
     * @param versionControl 版本管理
     * @return 结果
     */
    @Override
    public int updateVersionControl(VersionControl versionControl)
    {
        versionControl.setUpdateTime(DateUtils.getNowDate());
        return baseMapper.updateVersionControl(versionControl);
    }

    /**
     * 删除版本管理对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteVersionControlByIds(String ids)
    {
        return baseMapper.deleteVersionControlByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除版本管理信息
     *
     * @param versionId 版本管理ID
     * @return 结果
     */
    @Override
    public int deleteVersionControlById(Long versionId)
    {
        return baseMapper.deleteVersionControlById(versionId);
    }

    /**
     * 查询最新一条版本记录
     * @return
     */
    @Override
    public VersionControl selectNewVersionControl() {
        return baseMapper.selectNewVersionControl();
    }
}
